package top.hmtools.services;

import java.util.List;

import org.springframework.stereotype.Service;

import top.hmtools.beans.MapperXmlFileTempletBean;
import top.hmtools.model.ResultModel;
import top.hmtools.model.ResultModel.resultStatus;

/**
 * 
 * @author HyboJ
 *
 */
@Service
public class MapperXmlTempletFileManageService extends BaseService {

	/**
	 * 添加一条mapper xml模板信息
	 * @param bean
	 * @return
	 */
	public ResultModel addOne(MapperXmlFileTempletBean bean) {
		ResultModel result = new ResultModel(resultStatus.STATUS_FAIL);
		//TODO 验证模板名称的唯一性
		
		int count = this.mapperXmlFileTempletDao.addOne(bean);
		if(count>0){
			result.setStatusSuccess();
			result.setMessage("添加成功");
		}else{
			result.setMessage("添加失败");
		}
		
		return result;
	}

    /**
    * 方法说明：                   修改一条mapper xml 模板文件信息
    * 输入参数说明：           @param bean
    * 输入参数说明：           @return
    * 输出参数说明：           ResultModel
    *
    **/
    public ResultModel updateOne(MapperXmlFileTempletBean bean) {
        ResultModel result = new ResultModel(resultStatus.STATUS_FAIL);
        //TODO 验证模板名称的唯一性
        
        int count = this.mapperXmlFileTempletDao.updateOne(bean);
        if(count>0){
            result.setStatusSuccess();
            result.setMessage("修改成功");
        }else{
            result.setMessage("修改失败");
        }
        
        return result;
    }

    /**
    * 方法说明：                    根据id物理删除一条mapper xml 模板文件信息
    * 输入参数说明：           @param id
    * 输入参数说明：           @return
    * 输出参数说明：           ResultModel
    *
    **/
    public ResultModel deleteOneByID(String id) {
        ResultModel result = new ResultModel(resultStatus.STATUS_FAIL);
        
        int count = this.mapperXmlFileTempletDao.delOne(id);
        if(count>0){
            result.setStatusSuccess();
            result.setMessage("删除成功");
        }else{
            result.setMessage("删除失败");
        }
        
        return result;
    }

    /**
    * 方法说明：                    根据数据库类型获取所有对应的数据
    * 输入参数说明：           @param typeCode
    * 输入参数说明：           @return
    * 输出参数说明：           ResultModel
    *
    **/
    public ResultModel<MapperXmlFileTempletBean> getSqlPartTempletsByDataType(int typeCode) {
        ResultModel<MapperXmlFileTempletBean> result = new ResultModel<MapperXmlFileTempletBean>(resultStatus.STATUS_FAIL);

        List<MapperXmlFileTempletBean> beansDB = this.mapperXmlFileTempletDao.getAllByDbType(typeCode);
        if (beansDB != null && beansDB.size() >= 0) {
            result.setStatusSuccess();
            result.setRows(beansDB);
            result.setMessage("获取成功");
        } else {
            result.setMessage("获取失败");
        }

        return result;
    }

}
